package com.lee.system.api;


import java.util.List;

import com.lee.page.PageDomain;
import com.lee.page.PageResult;
import com.lee.system.entity.User;




/**
 * 用户 服务层
 * @author LiPengFei
 *
 */
public interface IUserService 
{
	/**
     * 查询用户信息
     * 
     * @param userId 用户ID
     * @return 用户信息
     */
	public User selectUserById(Long userId);
	/**
	 * 查询用户信息
	 * @param loginName 登陆账号
	 * @return 用户信息
	 */
	public User selectByLoginName(String loginName);
	
	/**
     * 分页查询用户列表
     * 
     * @param user 用户信息
     * @return 用户集合
     */
	public PageResult selectUserList(User user,PageDomain pageDomain);
	
	/**
	 * 
	 * 不分页查询用户列表	
	 * @Title: selectAllUserList
	 * @param @return    参数
	 * @return Result    返回类型
	 * @author lpf
	 * @throws
	 */
	public List<User> selectUserList(User user);
	
	/**
     * 新增用户
     * 
     * @param user 用户信息
     * @return 结果
     */
	public int insertUser(User user);
	
	/**
     * 修改用户
     * 
     * @param user 用户信息
     * @return 结果
     */
	public int updateUser(User user);
	
	/**
     * 保存用户
     * 
     * @param user 用户信息
     * @return 结果
     */
	public int saveUser(User user);
	
	
	/**
     * 删除用户信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
	 * @throws Exception 
     */
	public int deleteUserByIds(String ids) throws Exception;
	
	/**
	 * 重置用户密码
	 * @param user
	 * @return
	 */
	public int restPassWord(User user);
	/**
	 * 校验用户名是否唯一
	 * @param loginName
	 * @return
	 */
	public int checkLoginNameUnique(String loginName);
	/**
	 * 校验邮箱是否唯一
	 * @param user
	 * @return
	 */
	public boolean checkEmailUnique(User user);
	/**
	 * 校验电话是否唯一
	 * @param User
	 * @return
	 */
	public boolean checkPhoneUnique(User User);
	/**
	 * 查询用户所属角色组
	 * @param userId
	 * @return
	 */
	public String selectUserRoleGroup(Long userId);
	/**
	 * 查询用户岗位组
	 * @param userId
	 * @return
	 */
	public String selectUserPostGroup(Long userId);
	
	
}
